package com.ruoyi.psi.base.category.service;



import com.ruoyi.psi.base.category.domain.BaseCategory;
import com.ruoyi.utils.TreeSelect;

import java.util.List;

/**
 * 产品类别
 * 业务层
 * @author Drj 2021/6/28
 */
public interface IBaseCategoryService {
    /**
     * 根据条件查询产品类别
     *
     * @param baseCategory 产品类别信息
     * @return 产品类别集合
     */
    public List<BaseCategory> selectBaseCategoryList(BaseCategory baseCategory);

    /**
     * 根据id查询产品类别
     *
     * @param baseCategoryId 产品类别编号
     * @return 产品类别
     */
    public BaseCategory selectBaseCategoryById(String baseCategoryId);

    /**
     * 新增产品类别
     *
     * @param baseCategory 产品类别信息
     * @return 结果
     */
    public int insertBaseCategory(BaseCategory baseCategory);

    /**
     * 修改产品类别数据
     *
     * @param baseCategory 产品类别信息
     * @return 结果
     */
    public int updateBaseCategory(BaseCategory baseCategory);

    /**
     * 删除功能
     * 更新对应产品类别删除标志
     *
     * @param baseCategory 产品类别信息
     * @return
     */
    public int updateBaseCategoryDeleteFlag(BaseCategory baseCategory);

    /**
     * 构建前端所需要树结构
     *
     * @param baseCategories 产品类别列表
     * @return 树结构列表
     */
    public List<BaseCategory> buildBaseCategoryTree(List<BaseCategory> baseCategories);

    /**
     * 构建前端所需要下拉树结构
     *
     * @param baseCategories 产品类别列表
     * @return 下拉树结构列表
     */
    public List<TreeSelect> buildBaseCategoryTreeSelect(List<BaseCategory> baseCategories);
}
